/** - - - - - - - - - - - - - - - - - - - - -*
 * Name:		Heinrich
 * Vorname:		Klaus-W. Heinrich
 * MatrNr:		197282
 *
 * Dateiname:	AndroidsChoiceGameScene.java
 * Packagename:	de.androidschoice.androids.choice.objects
 * Projektname:	AndroidsChoice
 * Erst.Datum:	15.09.2012
 * - - - - - - - - - - - - - - - - - - - - -*/
package de.androidschoice.androids.choice.objects;

import java.io.File;

import android.util.SparseArray;

import de.androidschoice.androids.choice.interfaces.GameScene;
import de.androidschoice.androids.choice.interfaces.GameSceneChoice;

/**
 * @author Klaus
 *
 */
public class AndroidsChoiceGameScene 
	implements GameScene
{
	private final File image;
	private final Integer number;
	private final String text;
	private final SparseArray<GameSceneChoice> gameSceneChoices = new SparseArray<GameSceneChoice>();

	
	/**
	 * Erstellt eine neue AndroidsChoiceGameScene mit den angegebenen Parametern
	 * @param number
	 * die ID der Szene
	 * @param text
	 * der Text der Szene
	 * @param imageFile 
	 * das optionale Image als Pfadangabe
	 * @param gameSceneChoices
	 * alle Auswahlmöglichkeiten
	 */
	public AndroidsChoiceGameScene(Integer number, String text, String imageFile)
	{
		this.number = number;
		this.text = text;
		if(imageFile != null)
		{
			this.image = new File(imageFile);
		}
		else
		{
			this.image = null;
		}
	}
	
	/**
	 * Erstellt eine neue AndroidsChoiceGameScene mit den angegebenen Parametern
	 * @param number
	 * die ID der Szene
	 * @param text
	 * der Text der Szene
	 * @param imageFile 
	 * das optionale Image
	 * @param gameSceneChoices
	 * alle Auswahlmöglichkeiten
	 */
	public AndroidsChoiceGameScene(Integer number, String text, File imageFile)
	{
		this.number = number;
		this.text = text;
		this.image = imageFile;
	}
	
	/* (non-Javadoc)
	 * @see de.androidschoice.androids.choice.interfaces.GameScene#getText()
	 */
	public String getText() {
		return this.text;
	}

	/* (non-Javadoc)
	 * @see de.androidschoice.androids.choice.interfaces.GameScene#getGameSceneChoices()
	 */
	public SparseArray<GameSceneChoice> getGameSceneChoices() {
		return this.gameSceneChoices;
	}

	/* (non-Javadoc)
	 * @see de.androidschoice.androids.choice.interfaces.GameScene#getNumber()
	 */
	public int getNumber() {
		return this.number;
	}
	
	/**
	 * Setzt die nächste Auswahlmöglichkeit an die GameScene an
	 * @param choice
	 * Die Auswahlmöglichkeit der nächsten GameScene
	 */
	public void addGameSceneChoice(GameSceneChoice choice)
	{
		this.gameSceneChoices.append(this.gameSceneChoices.size(), choice);
	}

	/* (non-Javadoc)
	 * @see de.androidschoice.androids.choice.interfaces.GameScene#getImage()
	 */
	public File getImage() {
		return this.image;
	}

}
